package cn.com.generaldata.os.service.intf;

import java.io.File;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;

import cn.com.generaldata.jsme_indicator_system.entity.UnitPic;
import cn.com.generaldata.jsme_indicator_system.entity.UnitPro;
import cn.com.generaldata.jsme_indicator_system.entity.UnitRelationNz;
import cn.com.generaldata.os.paging.Filter;
import cn.com.generaldata.os.paging.Page;
import cn.com.generaldata.os.paging.Result;
import cn.com.generaldata.os.pojo.Area;
import cn.com.generaldata.os.pojo.Unit;

public interface UnitServiceInterface {

	/**
	 * @function 创建单位
	 * @param unit
	 * @return 主键
	 */
	String createUnit(Unit unit);

	/**
	 * @function 查询单位
	 * @param filter
	 * @return 结果集
	 */
	Result queryUnits(Filter filter, Page page);

	/**
	 * 批量删除单位
	 * 
	 * @param filter
	 * @return
	 */
	void removeUnits(String[] ids);

	/**
	 * 修改单位
	 * 
	 * @param filter
	 * @return
	 */
	Unit modifyUnit(Unit unit);

	/**
	 * @function 按ID查询单位
	 * @param id
	 * @return 结果
	 */
	public Unit queryUnitById(String id);

	/** 获得省海洋局单位 */
	public Unit getProvinceOceanUnit();

	Result queryUnitsByhql(String hql, HashMap map, Page page);

	/**
	 * 导入企业信息
	 * 
	 * @param file
	 * @param uid
	 * @return
	 */
	String importUnits(File file);

	/**
	 * 根据地区，单位类型获得单位.
	 * 
	 * @param areaId
	 * @param roleId
	 * @return
	 */
	List<Unit> queryUnitByAreaAndRole(String areaId, String roleId);

	Unit getUnitId(String name);

	String importEnterprise(File file);

	String importUnitPro(File file);

	List<UnitPro> findPros(String unitId);

	String uploadPic(String unitId, String filePath);

	List<UnitPic> queryUnitPic(String unitId);

	String delUnitPic(String id);

	List<UnitPic> showUnitPic(String id);

	cn.com.generaldata.os.vo.UnitVO toVo(Unit pUnit);

	void generalExcel(List<String> ids, OutputStream out);

	List<Area> getChildArea(String pid);

	List<UnitRelationNz> findChildren(String pid);

	List<UnitRelationNz> queryUnitRelation(String unitId);

	int addUnitRelation(String cid, String pid) throws Exception;

	int modifyUnitRelation(String cid, String pid) throws Exception;

	public List<UnitRelationNz> checkChildren(String type, String unitId);
}
